home *** CD-ROM | disk | FTP | other *** search
/ 3D Games - Real-time Rend…ng & Software Technology / 3D Games - Real-time Rendering & Software Technology.iso / flysdk / plugin / bezobj / bezobj.h < prev   
Encoding:
C/C++ Source or Header  |  2000-07-03  |  2.7 KB  |  135 lines

  1. enum classes_types
  2. {
  3.     TYPE_BEZIER_EXTRUDE=0x130,
  4.     TYPE_BEZIER_LOFT,
  5.     TYPE_BEZIER_SURFACE,
  6. };
  7.  
  8. #define MAX_CURVE_VERTS 64
  9. #define MAX_CURVE_LMPIXELS 32
  10.  
  11. class bezier_extrude : public bsp_object
  12. {
  13. public:
  14.  
  15.     bezier_curve *curve;
  16.     mesh *objmesh;
  17.     stripfan_mesh *sfmesh;
  18.  
  19.     float width;
  20.     int strippic,fanpic;
  21.     float tileu,tilev,tilew;
  22.     int lm[3];
  23.  
  24.     void build_stripfan();
  25.     int step(int dt) { return 0; };
  26.     void draw();
  27.     int get_custom_param_desc(int i,param_desc *pd);
  28.     int message(vector& p,float rad,int msg,int param,void *data);
  29.     void illuminate_edge(vector& p,float rad,vector& color,int shadows);
  30.     void init();
  31.     bsp_object *clone();
  32.     mesh *get_mesh() { return objmesh; };
  33.  
  34.     bezier_extrude() 
  35.     { 
  36.         type=TYPE_BEZIER_EXTRUDE; 
  37.         objmesh=0;
  38.         sfmesh=0;
  39.     };
  40.     ~bezier_extrude() 
  41.     { 
  42.         if (objmesh) delete objmesh;
  43.         if (sfmesh) delete sfmesh;
  44.     };
  45. };
  46.  
  47. class bezier_loft : public bsp_object
  48. {
  49. public:
  50.  
  51.     bezier_curve *shape,*path;
  52.     bezier_patch patch;
  53.     mesh *objmesh;
  54.     stripfan_mesh *sfmesh;
  55.  
  56.     int texpic,lm;
  57.     float tileu,tilev;
  58.  
  59.     int create_normal_map(float scale);
  60.     void build_stripfan();
  61.     int step(int dt) { return 0; };
  62.     void draw();
  63.     int get_custom_param_desc(int i,param_desc *pd);
  64.     int message(vector& p,float rad,int msg,int param,void *data);
  65.     void init();
  66.     bsp_object *clone();
  67.     mesh *get_mesh() { return objmesh; };
  68.     void illuminate_patch(vector& p,float rad,vector& color,int shadows);
  69.  
  70.     bezier_loft() 
  71.     { 
  72.         type=TYPE_BEZIER_LOFT; 
  73.         objmesh=0;
  74.         sfmesh=0;
  75.     };
  76.     ~bezier_loft() 
  77.     { 
  78.         if (objmesh) 
  79.             delete objmesh;
  80.     };
  81. };
  82.  
  83. class bezier_surface : public bsp_object
  84. {
  85. public:
  86.     bezier_patch *patch;
  87.     mesh *objmesh;
  88.     
  89.     int step(int dt) { return 0; };
  90.     mesh *get_mesh() { return objmesh; };
  91.     void draw();
  92.     void init();
  93.     void build_stripfan();
  94.     int get_custom_param_desc(int i,param_desc *pd);
  95.     int message(vector& p,float rad,int msg,int param,void *data);
  96.     void illuminate_patch(vector& p,float rad,vector& color,int shadows);
  97.     bsp_object *clone();
  98.  
  99.     bezier_surface() 
  100.     { 
  101.         type=TYPE_BEZIER_SURFACE;
  102.         objmesh=0;
  103.     };
  104.     ~bezier_surface() 
  105.     { 
  106.         if (objmesh)
  107.             delete objmesh;
  108.     }
  109. };
  110.  
  111. class bezier_extrude_desc : public class_desc
  112. {
  113. public:
  114.     void *create() { return new bezier_extrude; };
  115.     char *get_name() { return "bezextrude"; };
  116.     int get_type() { return TYPE_BEZIER_EXTRUDE; };
  117. };
  118.  
  119. class bezier_loft_desc : public class_desc
  120. {
  121. public:
  122.     void *create() { return new bezier_loft; };
  123.     char *get_name() { return "bezloft"; };
  124.     int get_type() { return TYPE_BEZIER_LOFT; };
  125. };
  126.  
  127. class bezier_surface_desc : public class_desc
  128. {
  129. public:
  130.     void *create() { return new bezier_surface; };
  131.     char *get_name() { return "bezsurface"; };
  132.     int get_type() { return TYPE_BEZIER_SURFACE; };
  133. };
  134.  
  135.